Skip to main content

Packaging C/C++ Projects

Using vcpkg package manager to install packages?

Not at this point

End goal

  • Since the end product in the C/C++ world is a complete bundled binary executable and not a set of text files like a Python, JavaScript or Web app management of source file packages has not been the issue for C and C++ that it has become for the interpretive languages
  • Source package management in the C/C++ world has only been an issue for development teams
  • The standard practice in the past has been either
  • Manually download the required source collections from source repositories like as GitHub, team foundation server, etc.

Or

  • Use the platform specific installer bundled with the SDKs of choice, which were generated by the SDK’s creator.
  • In the Windows world this has typically been msinstall
  • In the Linux/UNIX world a gziped tarball
  • In the Apple World ?

In Visual Studio

  • For compiled binary packages the primary package manager on Windows has been Nuget, which interact with a binary repository of the same name. A Nuget packager manager has been preinstalled in the last several releases of Visual Studio and is also a preinstalled VSCode as a extension. In the Linus/Unix world the most common distribution method for binary packages is again gziped tarballs
  • I was not previously aware of the vcpkg project. Based on a cursory examination, it appears to be a recent Microsoft sponsored/directed Open Source Project to develop a platform agnostic package manager for C/C++ code similar to Python world’s npm utility

Potential problems

  • At present I see three problems with its use
  • A port of a package to its conventions is required before the package can be managed by it
  • A moment its developers are in the process of converting its package description conventions from proprietary control file format to a JASON manifest file format.
  • At this point in time the tool does not appears to have obtained much traction with either the open source community or commercial package vendors
  • These issues are likely to severely limit number of source packages which can be obtained via it.